The present invention relates in general to multiple process computer systems and more particularly to a method and apparatus for simultaneously displaying multiple process outputs on a single screen.
Typically operators access computers through terminals including an input device such as a keyboard and an output display device such as a cathode ray tube (CRT) screen. Although many types of terminals are available, terminals of the prior art provide for a single output stream directed from the computer to the operator and a single input stream from the operator to the computer. When the terminal accesses a multiprocess computer, only one computer process attaches its input and output to these streams and does not relinquish them to another computer process until it is suspended. At that time another computer process may attach its input and output to these streams.
Most operators would find it difficult to manage more than one input device simultaneously so the limitation that a terminal can handle only a single input stream is of little practical significance. However, operators can monitor more than one output stream and the limitation that the terminal can handle only one output stream is more serious. For instance, an operator in a power plant may wish to view the outputs of several programs running on a multi-process computer which monitors plant operation. If only one terminal is used, the operator could only view the program outputs in succession since only one program can output to the terminal at a time. The traditional alternative is to provide a separate terminal for each process output stream. This permits the display outputs of all of the processes to be updated continuously and simultaneously.
The use of multiple terminals is an expensive solution to the problem, in terms of space and money, and it is often inconvenient for the operator to simultaneously monitor several screens. A partial remedy to this problem found in the prior art involves the use of separate windows on a CRT screen to display the outputs of separate computer processes. But there are limitations to this solution as well. First, there is still only one output stream and therefore only one process can update its associated display window at a time. The other processes must wait until the process controlling the stream is finished with its current window update cycle and relinquishes the output stream. Therefore, while the outputs of several processes may be displayed on a single screen, only one such output can be active and a process which must send data to the terminal before it can continue is suspended until it acquires control of the output stream. Secondly, to provide for larger views, when given a limited screen size, the windows are typically overlapped with the active window on top. When a process takes over the stream, its window is placed on top while portions of other windows which are covered are lost. This problem has been remedied, in the case of a terminal using a frame buffer memory storing display control data, by moving the data representing obscured window portions from the frame buffer memory to a secondary storage memory so that the obscured portions of the windows can be restored when these windows are once again brought to the forefront. However, such movement of display data takes time, retarding the speed of screen update.
A third problem associated with existing window systems relates to the need to modify each application process so that it writes only to the window and not the entire screen. This makes it difficult to adapt preexisting software for use in conjunction with a windowed display system.
What is needed is a system whereby output streams from multiple, active, application processes can be directed from a computer to a single display screen for concurrent, active display without requiring modification to the application programs.